package com.indexingsystem.system.service;

import java.util.List;
import java.util.Set;

import com.indexingsystem.boss.Vo.ServiceTypeInfoVo;
import com.indexingsystem.boss.common.PagedResult;
import com.indexingsystem.boss.entity.Scopes;

/**
 * 资源范围服务.
 * 
 * @author Administrator
 *
 */
public interface IScopesService {

	/**
	 * 通过主键删除资源范围.
	 * 
	 * @param socpesId
	 * @return
	 */
	int deleteByPrimaryKey(String scopesId) throws Exception;
	
	/**
	 * 通过授权code获取授权类型列表.
	 * @param scopesCodeList
	 * @return
	 */
	Set<Integer> queryScopesTypeByCodes(List<String> scopesCodeList);
	
	/**
	 * 批量删除资源范围.
	 * @param scopesIdList
	 * @return
	 */
	Integer deleteScopesByIdBatch(List<String> scopesIdList) throws Exception;

	/**
	 * 新增资源范围.
	 * 
	 * @param record
	 * @return
	 */
	int insertSelective(Scopes record) throws Exception;

	/**
	 * 分页查询资源范围.
	 * 
	 * @param pageNo
	 * @param pageSize
	 * @return
	 */
	PagedResult<Scopes> selectScopesList(String queryCriteria,Integer pageNo, Integer pageSize);

	/**
	 * 通过资源范围id查询资源范围信息.
	 * 
	 * @param socpesId
	 * @return
	 */
	Scopes selectByPrimaryKey(String scopesId);

	/**
	 * 修改资源范围.
	 * 
	 * @param record
	 * @return
	 */
	int updateByPrimaryKeySelective(Scopes record) throws Exception;

	/**
	 * 获取授权资源范围总数量.
	 * 
	 * @return
	 */
	Integer getScopersCount(String queryCriteria);

	/**
	 * 通过资源范围code查询资源范围信息.
	 * 
	 * @param code
	 * @return
	 */
	Scopes selectScopesByCode(String code);

	/**
	 * 通过资源范围code、名称、url查询是否已存在
	 * 
	 * @param record
	 * @return
	 */
	Scopes selectScopesExits(Scopes record);

	/**
	 * 获取授权范围code列表
	 * @return
	 */
	List<String> getScopersCodeList();	
	
	/**
	 * 应用管理获取授权范围code及name列表.
	 * @return
	 */
	List<ServiceTypeInfoVo> getScopersTypeList();
	
	List<Scopes> getScopersURI();
	
	
}